﻿#ifndef OperatorsGeoUpDieManager_H
#define OperatorsGeoUpDieManager_H


#include "OperManagerBase.h"

namespace ModelOper
{
    /**
     * @brief 压印上模具几何操作器
     * @author LiZiyang (LiZiyang@qq.com)
     * @date 2024-12-12
     */
    class OperatorsGeoUpDieManager :public OperManagerBase
    {
        Q_OBJECT;
    public:
        /**
         * @brief Construct a new Operators Geo Cylinder Manager object
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        OperatorsGeoUpDieManager();
        /**
         * @brief Destroy the Operators Geo Cylinder Manager object
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        ~OperatorsGeoUpDieManager();
        /**
         * @brief 执行
         * @return true 成功
         * @return false 失败
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        virtual bool execGUI();
        /**
         * @brief 执行结果处理
         * @return true 成功
         * @return false 失败
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        virtual bool execProfession();
        /**
         * @brief 其他事件执行
         * @param[i]  index          事件索引（自定义）
         * @param[i]  value          其他数据
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-08-01
         */
        void eventProcess(int index, QVariant value) override;
    private slots:
        ;
        /**
         * @brief 原点选择事件
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        void slotReselectOriginPoint();
        /**
         * @brief 面组选择事件
         * @author LiZiyang (LiZiyang@163.com)
         * @date 2024-12-12
         */
        void slotSelectFaceGroup();
    };

    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionGeoUpDieCreate, OperatorsGeoUpDieManager);
    Register2FITKOperatorRepo(actionGeoUpDieEdit, OperatorsGeoUpDieManager);
    Register2FITKOperatorRepo(actionGeoUpDieDelete, OperatorsGeoUpDieManager);
    Register2FITKOperatorRepo(actionGeoUpDieRename, OperatorsGeoUpDieManager);
}

#endif // OperatorsGeoUpDieManager_H
